<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>这是计算器报告</title>
    <meta name="generator" content="HTMLTestRunner 0.8.2"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    
<style type="text/css" media="screen">
body        { font-family: verdana, arial, helvetica, sans-serif; font-size: 80%; }
table       { font-size: 100%; }
pre         { }

/* -- heading ---------------------------------------------------------------------- */
h1 {
	font-size: 16pt;
	color: gray;
}
.heading {
    margin-top: 0ex;
    margin-bottom: 1ex;
}

.heading .attribute {
    margin-top: 1ex;
    margin-bottom: 0;
}

.heading .description {
    margin-top: 4ex;
    margin-bottom: 6ex;
}

/* -- css div popup ------------------------------------------------------------------------ */
a.popup_link {
}

a.popup_link:hover {
    color: red;
}

.popup_window {
    display: none;
    position: relative;
    left: 0px;
    top: 0px;
    /*border: solid #627173 1px; */
    padding: 10px;
    background-color: #E6E6D6;
    font-family: "Lucida Console", "Courier New", Courier, monospace;
    text-align: left;
    font-size: 8pt;
    width: 500px;
}

}
/* -- report ------------------------------------------------------------------------ */
#show_detail_line {
    margin-top: 3ex;
    margin-bottom: 1ex;
}
#result_table {
    width: 80%;
    border-collapse: collapse;
    border: 1px solid #777;
}
#header_row {
    font-weight: bold;
    color: white;
    background-color: #777;
}
#result_table td {
    border: 1px solid #777;
    padding: 2px;
}
#total_row  { font-weight: bold; }
.passClass  { background-color: #6c6; }
.failClass  { background-color: #c60; }
.errorClass { background-color: #c00; }
.passCase   { color: #6c6; }
.failCase   { color: #c60; font-weight: bold; }
.errorCase  { color: #c00; font-weight: bold; }
.hiddenRow  { display: none; }
.testcase   { margin-left: 2em; }


/* -- ending ---------------------------------------------------------------------- */
#ending {
}

</style>

</head>
<body>
<script language="javascript" type="text/javascript"><!--
output_list = Array();

/* level - 0:Summary; 1:Failed; 2:All */
function showCase(level) {
    trs = document.getElementsByTagName("tr");
    for (var i = 0; i < trs.length; i++) {
        tr = trs[i];
        id = tr.id;
        if (id.substr(0,2) == 'ft') {
            if (level < 1) {
                tr.className = 'hiddenRow';
            }
            else {
                tr.className = '';
            }
        }
        if (id.substr(0,2) == 'pt') {
            if (level > 1) {
                tr.className = '';
            }
            else {
                tr.className = 'hiddenRow';
            }
        }
    }
}


function showClassDetail(cid, count) {
    var id_list = Array(count);
    var toHide = 1;
    for (var i = 0; i < count; i++) {
        tid0 = 't' + cid.substr(1) + '.' + (i+1);
        tid = 'f' + tid0;
        tr = document.getElementById(tid);
        if (!tr) {
            tid = 'p' + tid0;
            tr = document.getElementById(tid);
        }
        id_list[i] = tid;
        if (tr.className) {
            toHide = 0;
        }
    }
    for (var i = 0; i < count; i++) {
        tid = id_list[i];
        if (toHide) {
            document.getElementById('div_'+tid).style.display = 'none'
            document.getElementById(tid).className = 'hiddenRow';
        }
        else {
            document.getElementById(tid).className = '';
        }
    }
}


function showTestDetail(div_id){
    var details_div = document.getElementById(div_id)
    var displayState = details_div.style.display
    // alert(displayState)
    if (displayState != 'block' ) {
        displayState = 'block'
        details_div.style.display = 'block'
    }
    else {
        details_div.style.display = 'none'
    }
}


function html_escape(s) {
    s = s.replace(/&/g,'&amp;');
    s = s.replace(/</g,'&lt;');
    s = s.replace(/>/g,'&gt;');
    return s;
}

/* obsoleted by detail in <div>
function showOutput(id, name) {
    var w = window.open("", //url
                    name,
                    "resizable,scrollbars,status,width=800,height=450");
    d = w.document;
    d.write("<pre>");
    d.write(html_escape(output_list[id]));
    d.write("\n");
    d.write("<a href='javascript:window.close()'>close</a>\n");
    d.write("</pre>\n");
    d.close();
}
*/
--></script>

<div class='heading'>
<h1>这是计算器报告</h1>
<p class='attribute'><strong>Start Time:</strong> 2023-06-25 15:58:33</p>
<p class='attribute'><strong>Duration:</strong> 0:00:00</p>
<p class='attribute'><strong>Status:</strong> Pass 33 Failure 3 Error 2</p>

<p class='description'>这是计算器报告</p>
</div>



<p id='show_detail_line'>Show
<a href='javascript:showCase(0)'>Summary</a>
<a href='javascript:showCase(1)'>Failed</a>
<a href='javascript:showCase(2)'>All</a>
</p>
<table id='result_table'>
<colgroup>
<col align='left' />
<col align='right' />
<col align='right' />
<col align='right' />
<col align='right' />
<col align='right' />
</colgroup>
<tr id='header_row'>
    <td>Test Group/Test case</td>
    <td>Count</td>
    <td>Pass</td>
    <td>Fail</td>
    <td>Error</td>
    <td>View</td>
</tr>

<tr class='errorClass'>
    <td>unittest.loader._FailedTest</td>
    <td>2</td>
    <td>0</td>
    <td>0</td>
    <td>2</td>
    <td><a href="javascript:showClassDetail('c1',2)">Detail</a></td>
</tr>

<tr id='ft1.1' class='none'>
    <td class='errorCase'><div class='testcase'>TestAdd</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.1')" >
        error</a>

    <div id='div_ft1.1' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft1.1').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft1.1: ImportError: Failed to import test module: TestAdd
Traceback (most recent call last):
  File "E:\Python37\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "E:\Python37\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "D:\codes\Python\job\单元测试unittest\TestAdd.py", line 34, in &lt;module&gt;
    from Calc import Calc
ModuleNotFoundError: No module named 'Calc'



        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='ft1.2' class='none'>
    <td class='errorCase'><div class='testcase'>TestLogin</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft1.2')" >
        error</a>

    <div id='div_ft1.2' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft1.2').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft1.2: ImportError: Failed to import test module: TestLogin
Traceback (most recent call last):
  File "E:\Python37\lib\unittest\loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "E:\Python37\lib\unittest\loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "D:\codes\Python\job\单元测试unittest\TestLogin.py", line 23, in &lt;module&gt;
    from Calc import Calc
ModuleNotFoundError: No module named 'Calc'



        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr class='failClass'>
    <td>test_calculator.TestCalc</td>
    <td>36</td>
    <td>33</td>
    <td>3</td>
    <td>0</td>
    <td><a href="javascript:showClassDetail('c2',36)">Detail</a></td>
</tr>

<tr id='pt2.1' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_1__1_0__1_0__2_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.2' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_2___1_0___1_0___2_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.3' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_3__3_0___4_0___1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.4' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_4___3_0__4_0__1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.5' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_5__0_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.6' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_6__1_0__0_0__1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.7' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_7__0_0__1_0__1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.8' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_8___1_0__0_0___1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.9' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_addition_9__0_0___1_0___1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.10' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_division_1__4_0__2_0__2_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.11' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_division_2___4_0___2_0__2_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.12' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_division_3__4_0___2_0___2_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.13' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_division_4___4_0__2_0___2_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='ft2.14' class='none'>
    <td class='failCase'><div class='testcase'>test_division_5__0_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft2.14')" >
        fail</a>

    <div id='div_ft2.14' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft2.14').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft2.14: Traceback (most recent call last):
  File "D:\codes\Python\venv\job\lib\site-packages\ddt.py", line 220, in wrapper
    return func(self, *args, **kwargs)
  File "D:\codes\Python\job\单元测试unittest\test_calculator.py", line 40, in test_division
    self.assertTrue(s)
AssertionError: False is not true


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='ft2.15' class='none'>
    <td class='failCase'><div class='testcase'>test_division_6__4_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft2.15')" >
        fail</a>

    <div id='div_ft2.15' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft2.15').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft2.15: Traceback (most recent call last):
  File "D:\codes\Python\venv\job\lib\site-packages\ddt.py", line 220, in wrapper
    return func(self, *args, **kwargs)
  File "D:\codes\Python\job\单元测试unittest\test_calculator.py", line 40, in test_division
    self.assertTrue(s)
AssertionError: False is not true


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt2.16' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_division_7__0_0__4_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='ft2.17' class='none'>
    <td class='failCase'><div class='testcase'>test_division_8___4_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_ft2.17')" >
        fail</a>

    <div id='div_ft2.17' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft2.17').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft2.17: Traceback (most recent call last):
  File "D:\codes\Python\venv\job\lib\site-packages\ddt.py", line 220, in wrapper
    return func(self, *args, **kwargs)
  File "D:\codes\Python\job\单元测试unittest\test_calculator.py", line 40, in test_division
    self.assertTrue(s)
AssertionError: False is not true


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt2.18' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_division_9__0_0___4_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.19' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_1__3_0__3_0__9_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.20' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_2___3_0___3_0__9_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.21' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_3__3_0___3_0___9_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.22' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_4___3_0__3_0___9_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.23' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_5__0_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.24' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_6__3_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.25' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_7__0_0__3_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.26' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_8___3_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.27' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_multiplication_9__0_0___3_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.28' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_1__4_0__3_0__1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.29' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_2___4_0___3_0___1_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.30' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_3__4_0___3_0__7_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.31' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_4___4_0__3_0___7_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.32' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_5__0_0__0_0__0_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.33' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_6__0_0__4_0___4_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.34' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_7__4_0__0_0__4_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.35' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_8__0_0___3_0__3_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='pt2.36' class='hiddenRow'>
    <td class='none'><div class='testcase'>test_subtraction_9___3_0__0_0___3_0_</div></td>
    <td colspan='5' align='center'>pass</td>
</tr>

<tr id='total_row'>
    <td>Total</td>
    <td>38</td>
    <td>33</td>
    <td>3</td>
    <td>2</td>
    <td>&nbsp;</td>
</tr>
</table>

<div id='ending'>&nbsp;</div>

</body>
</html>
